function ajax (options) {
  // 1. 创建XMLHttpRequest对象
  const xhr = new window.XMLHttpRequest()

  // 2. 处理参数，对象参数转成名称值对形式
  // username='admin'&password=1234
  const parame = formateParame(options.data)

  // 3. 判断请求方式,建立连接，发送请求
  const method = options.method.toUpperCase() // 小写转大写
  if (method === 'GET') {
    xhr.open(method, options.url + '?' + parame) // 4.建立连接
    xhr.send()// 5.发送请求
  } else if (method === 'POST') {
    xhr.open(method, options.url) // 4.建立连接
    xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded')
    xhr.send(parame)// 5.发送请求
  }

  // 6.处理响应结果
  xhr.onreadystatechange = function () {
    if (xhr.readyState === 4) {
      if (xhr.status === 200) {
        const result = xhr.responseText // 响应数据，字符串形式
        const data = JSON.parse(result)
        // 调用处理成功的回调函数success
        options.success(data)
      } else {
        options.error(xhr)
      }
    }
  }
}

/**
   *     {
   *         username:'admin',
   *         password:123                 =>   username='admin'&password=1234
   *     }
   * @param {*} obj
   */
function formateParame (obj) {
  const arr = []
  for (const key in obj) {
    const item = `${key}=${obj[key]}` // username='admin
    arr.push(item) // ['username='admin', password=1234]
  }
  const str = arr.join('&') // username='admin'&password=1234
  return str
}
// 创建promse对象
function ajaxPromise (obj) {
  const promise = new Promise(function (resolve, reject) {
  // 封装ajax异步任务
    ajax({
      method: obj.method,
      url: obj.url,
      data: obj.data,
      success: function (data) {
        resolve(data)
      },
      error: function (error) {
        reject(error)
      }
    })
  })
  return promise
}

// 我的页面推荐商品接口
export const getProd = () => {
  return ajaxPromise({
    method: 'GET',
    url: 'http://rap2api.taobao.org/app/mock/298670/api/baokuan'
  })
}
